﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tradex.Trading {
    
    /// <summary>
    /// This class encapsules the modification for an order. This is the data that needs to be changed.
    /// </summary>
    public class OrderModification {

        /// <summary>
        /// Constructs an order modification.
        /// </summary>
        /// <param name="quantity"></param>
        /// <param name="limit"></param>
        /// <param name="duration"></param>
        /// <param name="trigger"></param>
        public OrderModification(
            int quantity, double limit, OrderDuration duration, Trigger trigger
        ) {
            Quantity = quantity;
            Limit = limit;
            Duration = duration;
            Trigger = trigger;
        }

        /// <summary>
        /// The quantity to modify the order to.
        /// </summary>
        public int Quantity { get; private set; }

        /// <summary>
        /// The limit price to modify the order to.
        /// </summary>
        public double Limit { get; private set; }

        /// <summary>
        /// The new duration of the order.
        /// </summary>
        public OrderDuration Duration { get; private set; }

        /// <summary>
        /// The new order trigger.
        /// </summary>
        public Trigger Trigger { get; private set; }
        
    }

}
